/* Copyright (c) Microsoft Corporation                                       */
/*                                                                           */
/* All rights reserved.                                                      */
/*                                                                           */
/* Licensed under the Apache License, Version 2.0 (the "License"); you may   */
/* not use this file except in compliance with the License.  You may obtain  */
/* a copy of the License at http://www.apache.org/licenses/LICENSE-2.0       */
/*                                                                           */
/* THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS     */
/* OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION      */
/* ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR   */
/* PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.                              */
/*                                                                           */
/* See the Apache Version 2.0 License for specific language governing        */
/* permissions and limitations under the License.                            */
/*                                                                           */
#pragma once

#include "zarfile.h"
#include "Emittable.h"

class PHdr : public Emittable {
private:
	ZF_Phdr phdr;

public:
	PHdr(uint32_t len, uint32_t flags);
	virtual uint32_t get_size();
	void connect_string(uint32_t string_index, uint32_t string_len);
	void connect_chunks(uint32_t chunk_index, uint32_t chunk_count);
	virtual const char* get_type();
	virtual void emit(FILE *fp);
	uint32_t get_file_len();
	bool is_dir();
	bool is_enoent();
};
